import sys
from PyQt5.QtWidgets import QApplication, QMessageBox
from login_dialog import LoginDialog
from database import DatabaseManager
from PyQt5 import QtWidgets

if __name__ == "__main__":
    try:
        app = QApplication(sys.argv)

        # 初始化数据库连接
        db = DatabaseManager(
            host="localhost",
            user="root",
            password="250127",  # 使用您提供的密码
            database="health_manager",
            port=3306
        )

        # 尝试连接数据库
        if not db.connect():
            # 创建错误消息框
            error_box = QMessageBox()
            error_box.setIcon(QMessageBox.Critical)
            error_box.setWindowTitle("数据库错误")
            error_box.setText("无法连接到数据库")
            error_box.setInformativeText("请检查数据库服务是否运行\n以及用户名和密码是否正确")
            error_box.exec_()
            sys.exit(1)

        # 创建表结构
        if not db.create_tables():
            sys.exit(1)

        # 创建登录对话框
        login_dialog = LoginDialog(db)
        if login_dialog.exec_() == QtWidgets.QDialog.Accepted:
            from main_window import MainWindow

            # 创建主窗口
            main_window = MainWindow(db, login_dialog.user_id)
            main_window.show()
            sys.exit(app.exec_())
        else:
            sys.exit(0)
    except Exception as e:
        QMessageBox.critical(None, "应用程序错误", f"应用程序崩溃: {e}")
        sys.exit(1)